/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;
import java.io.Serializable;
import java.util.ArrayList;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.OneToMany;
/**
 *
 * @author Elias Mendoza
 */
@Entity
@Table(name="productor")
public class Productor implements Serializable{
  @Id
  @GeneratedValue(strategy= GenerationType.IDENTITY)
  private int id;
  @Column(nullable=false)
  private String nombre;
  @Column(nullable=false)
  private String direccion;
  @Column(nullable=false)
  private String telefono;
  @Column(nullable=false)
  private String email;
  @Column(nullable=false)
  private String dependencia;
  //Declaramos la relacion entre Productor y producto (un productor varios productos)
  @OneToMany(cascade= CascadeType.ALL, mappedBy="productor")
  private List<Producto> producto= new ArrayList<Producto>();

  public Productor() {
  }

  public List<Producto> getProducto() {
    return producto;
  }

  public void setProducto(List<Producto> producto) {
    this.producto = producto;
  }


  public Productor(String nombre) {
    this.nombre = nombre;
  }

  public String getDependencia() {
    return dependencia;
  }

  public void setDependencia(String dependencia) {
    this.dependencia = dependencia;
  }

  public String getDireccion() {
    return direccion;
  }

  public void setDireccion(String direccion) {
    this.direccion = direccion;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public int getId() {
    return id;
  }

  public String getNombre() {
    return nombre;
  }

  public void setNombre(String nombre) {
    this.nombre = nombre;
  }

  public String getTelefono() {
    return telefono;
  }

  public void setTelefono(String telefono) {
    this.telefono = telefono;
  }

  @Override
  public String toString() {
    return nombre;
  }

  @Override
  public boolean equals(Object obj) {
    if (obj == null) {
      return false;
    }
    if (getClass() != obj.getClass()) {
      return false;
    }
    final Productor other = (Productor) obj;
    if (this.id != other.id) {
      return false;
    }
    if (this.producto != other.producto && (this.producto == null || !this.producto.equals(other.producto))) {
      return false;
    }
    return true;
  }

  @Override
  public int hashCode() {
    int hash = 5;
    hash = 19 * hash + this.id;
    hash = 19 * hash + (this.producto != null ? this.producto.hashCode() : 0);
    return hash;
  }
  
}
